package com.example.demo.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.example.demo.model.Employee;

/**
 * 

 * @author mill
 *
 */
@Mapper
public interface EmployeesMapper {
		
		List<Employee> getAll();
		
		List<Employee> findByEmp(Employee e);
		
		Boolean updateByEmployee(Employee e);
		/**
		 * 1. 一个参数不做处理，#{任意}都可以获取参数
		 * 2. 多个参数被封装成Map,key有一下两种#{arg0},#{param1} 都可以获取第一个参数
		 * 3. 使用命名参数@Param("id") Integer id
		 * 4. 多个参数一般使用实体类-->#{属性名}
		 * 5. 如果没有对应的实体类则使用map封装多个参数-->#{key}
		 * Available parameters are [arg1, arg0, param1, param2]
		 * @param id
		 * @param name
		 * @return
		 */
		Employee getOne(@Param("id") Integer id,@Param("ename") String name);
		Employee getById(@Param("id") Integer id);
	 
		void delete(Integer id);
		
		/**
		 * 插入语句的返回值可以是Integer/Long/Boolean
		 * @param e
		 * @return
		 */
		Boolean insert(Employee e);
		
		Boolean insertList(List<Employee> emps);
		
		List<Employee> getEmpAndDeptAll();
		
		List<Employee> findByDeptId(Integer did);

}
